package com.ruoyi.system.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 订单管理对象 orders
 * 
 * @author ruoyi
 * @date 2025-02-14
 */
public class Orders extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 订单ID */
    private Long orderId;

    /** 订单编号 */
    @Excel(name = "订单编号")
    private String orderNumber;

    /** 发送者ID */
    @Excel(name = "发送者ID")
    private Long senderId;

    /** 接收者ID */
    @Excel(name = "接收者ID") 
    private Long receiverId;

    /** 取件地址ID */
    @Excel(name = "取件地址ID")
    private Long pickupAddressId;

    /** 送件地址ID */
    @Excel(name = "送件地址ID")
    private Long deliveryAddressId;

    /** 订单状态 */
    @Excel(name = "订单状态")
    private String status;

    /** 包裹重量(kg) */
    @Excel(name = "包裹重量(kg)")
    private BigDecimal packageWeight;

    /** 包裹体积(m³) */
    @Excel(name = "包裹体积(m³)")
    private BigDecimal packageVolume;

    /** 包裹描述 */
    @Excel(name = "包裹描述")
    private String packageDescription;

    /** 预计送达时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "预计送达时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date estimatedDeliveryTime;

    /** 实际送达时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "实际送达时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date actualDeliveryTime;

    /** $column.columnComment */
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    private Date createdAt;

    /** $column.columnComment */
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    private Date updatedAt;

    public void setOrderId(Long orderId) 
    {
        this.orderId = orderId;
    }

    public Long getOrderId() 
    {
        return orderId;
    }
    public void setOrderNumber(String orderNumber) 
    {
        this.orderNumber = orderNumber;
    }

    public String getOrderNumber() 
    {
        return orderNumber;
    }
    public void setSenderId(Long senderId) 
    {
        this.senderId = senderId;
    }

    public Long getSenderId() 
    {
        return senderId;
    }
    public void setReceiverId(Long receiverId) 
    {
        this.receiverId = receiverId;
    }

    public Long getReceiverId() 
    {
        return receiverId;
    }
    public void setPickupAddressId(Long pickupAddressId) 
    {
        this.pickupAddressId = pickupAddressId;
    }

    public Long getPickupAddressId() 
    {
        return pickupAddressId;
    }
    public void setDeliveryAddressId(Long deliveryAddressId) 
    {
        this.deliveryAddressId = deliveryAddressId;
    }

    public Long getDeliveryAddressId() 
    {
        return deliveryAddressId;
    }
    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }
    public void setPackageWeight(BigDecimal packageWeight) 
    {
        this.packageWeight = packageWeight;
    }

    public BigDecimal getPackageWeight() 
    {
        return packageWeight;
    }
    public void setPackageVolume(BigDecimal packageVolume) 
    {
        this.packageVolume = packageVolume;
    }

    public BigDecimal getPackageVolume() 
    {
        return packageVolume;
    }
    public void setPackageDescription(String packageDescription) 
    {
        this.packageDescription = packageDescription;
    }

    public String getPackageDescription() 
    {
        return packageDescription;
    }
    public void setEstimatedDeliveryTime(Date estimatedDeliveryTime) 
    {
        this.estimatedDeliveryTime = estimatedDeliveryTime;
    }

    public Date getEstimatedDeliveryTime() 
    {
        return estimatedDeliveryTime;
    }
    public void setActualDeliveryTime(Date actualDeliveryTime) 
    {
        this.actualDeliveryTime = actualDeliveryTime;
    }

    public Date getActualDeliveryTime() 
    {
        return actualDeliveryTime;
    }
    public void setCreatedAt(Date createdAt) 
    {
        this.createdAt = createdAt;
    }

    public Date getCreatedAt() 
    {
        return createdAt;
    }
    public void setUpdatedAt(Date updatedAt) 
    {
        this.updatedAt = updatedAt;
    }

    public Date getUpdatedAt() 
    {
        return updatedAt;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("orderId", getOrderId())
            .append("orderNumber", getOrderNumber())
            .append("senderId", getSenderId())
            .append("receiverId", getReceiverId())
            .append("pickupAddressId", getPickupAddressId())
            .append("deliveryAddressId", getDeliveryAddressId())
            .append("status", getStatus())
            .append("packageWeight", getPackageWeight())
            .append("packageVolume", getPackageVolume())
            .append("packageDescription", getPackageDescription())
            .append("estimatedDeliveryTime", getEstimatedDeliveryTime())
            .append("actualDeliveryTime", getActualDeliveryTime())
            .append("createdAt", getCreatedAt())
            .append("updatedAt", getUpdatedAt())
            .toString();
    }
}
